//
// Interpret.hpp for  in /home/lund/Projets/abstract-vm/vmtmp
// 
// Made by florian dewulf
// Login   <dewulf_f@epitech.net>
// 
// Started on  Mon Feb 18 11:02:57 2013 florian dewulf
// Last update Tue Feb 19 20:10:20 2013 florian dewulf
//

#ifndef		_INTERPRET_H_
#define		_INTERPRET_H_

#include	<iostream>
#include	<string>

class		Interpret
{
public:
  enum		Type {
    INT,
    DEC
  };

public:
  Interpret(const std::string &, const bool &);
  virtual	~Interpret();
  bool		is_end() const;
  bool		is_op() const;
  bool		is_push() const;
  bool		is_assert() const;
  bool		is_pop() const;
  bool		is_dump() const;
  bool		is_print() const;
  bool		is_exit() const;
  /*template<class T>
  T		getNb_int() const;
  template<class T>
  T		getNb_dec() const;*/
  Type		getType() const;
  bool		check_validity() const;
  bool		epur_op();
  void		setStr(const std::string &);
  std::string	getStr() const;

public:
  static void		trunc_str(std::string &);
  static std::string	epur_space(const std::string &);

private:
  std::string	_str;
  bool		_state;		//true => std::cin, false = file
};

#endif
